/////////////////////////////////////////////////////////////////////////////
// Name:        introduction.h
// Purpose:     Introduction page for the AxTk Doxygen manual
// Author:      Julian Smart
// RCS-ID:      $Id$
// Licence:     New BSD License
/////////////////////////////////////////////////////////////////////////////


/**

@page page_introduction Introduction

@li @ref page_introduction_whatis
@li @ref page_introduction_motivation
@li @ref page_introduction_requirements
@li @ref page_introduction_acknowledgements


<hr>


@section page_introduction_whatis What is AxTk?

AxTk is a toolkit for creating highly accessible, cross-platform
self-voiced applications aimed at people with vision or other disabilities.
It features a new menu-based system that is easy for the user to learn and use,
as well as functionality to help developers adapt their existing applications.

AxTk is built on top of wxWidgets, and currently is only available as a
C++ API.

AxTk is in its infancy but the samples already demonstrate essential
functionality such as making conventional dialogs self-voicing with little
additional code, and the menuing system with a number of predefined
item types that can take the place of traditional controls and dialogs.

@section page_introduction_motivation AxTk motivation and approach

AxTk stems from a long-standing desire to create highly accessible applications,
and to help others to do so. While screen readers will always be essential
for making existing programs accessible, it would be more helpful if the
user interface voicing had some knowledge of the underlying application behaviour,
beyond the GUI controls. For example, you might wish to use different voices for navigation
and content reading, and not have the content reading interrupted by navigation.
Or you might need to assign special text labels to graphical interface elements.
There may well be custom controls that a screen reader can't make any
sense of at all, and in this case specialised voice enabling (and keyboard support)
is essential.

So instead of relying on screen readers to make a standard GUI accessible,
the AxTk approach is to provide a set of tools so that the developer
is in charge of accessibility. There are two main methods that
AxTk supports: adding self-voicing to existing applications, and
creation of a new, easy-to-use menu-based interface. These methods
can be mixed and matched if required.

Using the menu-based approach, you can create applications with a very
homogenous user interface routed mainly through a single menu control.
However, there is nothing to stop an application from being switchable
between the menu-based UI and a conventional wxWidgets GUI, in order to adapt to the user's requirements.
Obviously, this requires careful design to make as much code as
possible UI-independent, thereby making it easier to maintain
the two alternative UIs.

In addition to the basic UI functionality, AxTk defines a layer above
this for manipulating a 'resource library'. This is the basis for
applications that present a uniform interface to a variety of
file types and functionality, as diverse as ebooks, audio files,
web services, conversion utilities, and so on. The resource library
is a way of reducing the need to operate entirely differently
applications and user interfaces, which can be a struggle for those
with limited sight or motor control.

@section page_introduction_requirements AxTk requirements

To make use of AxTk, you currently need one of the following setups.

(a) MS-Windows:

@li A 32-bit or 64-bit PC running MS Windows.
@li A Windows compiler, preferably MS Visual C++, but you may have luck with Borland C++, Watcom C++, Cygwin, or MinGW.

(b) Unix:

@li Almost any C++ compiler, including GNU C++ and many Unix vendors
    compilers such as Sun CC, HP-UX aCC or SGI mipsPro.
@li Almost any Unix workstation, and one of: GTK+ 2.4 or higher.

(c) Mac OS/Mac OS X:

@li A PowerPC or Intel Mac running Mac OS X 10.4 or higher
@li The Apple Developer Tools (eg. GNU C++)

Under all platforms it's recommended to have large amounts of free hard disk
space.


@section page_introduction_where Availability and location of AxTk

AxTk source is currently available from http://code.google.com/p/axtk/.


@section page_introduction_acknowledgements Acknowledgements

AxTk comes to you courtesy of the following:

@li Julian Smart
@li The wxWidgets team (for wxWidgets)


*/
